package dq.study.nio.java.buffer;

import sun.nio.ch.DirectBuffer;

import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;

/**
 * 堆外内存溢出测试
 *
 * @author dongqun
 * @version 1.0.0
 * @since 2023/06/21 14:23:00
 */
public class DirectBufferTest {
    private static final int _10MB = 10 * 1024 * 1024;

    public static void main(String[] args) {
//        // 分配 10M 堆外内存
//        ByteBuffer byteBuffer = ByteBuffer.allocateDirect(10 * 1024 * 1024);
//        // 释放堆外内存
//        ((DirectBuffer) byteBuffer).cleaner().clean();
        // -Xmx10M -XX:MaxDirectMemorySize=10M -Xloggc:gc.log


            List<ByteBuffer> list = new ArrayList<>();
            // 分配 20MB
            list.add(ByteBuffer.allocateDirect(_10MB));
            list.add(ByteBuffer.allocateDirect(_10MB));


    }
}
